package com.sparrow.common.buff.effect;

import com.sparrow.common.buff.domain.Buff;
import com.sparrow.common.buff.domain.IBuffEffectParam;

/**
 * Buff效果接口，定义生命周期钩子和周期调用
 */
public interface IBuffEffect {

    void onStart(Buff buff);

    void onRefresh(Buff buff);

    void onTick(Buff buff, long now);

    void onExpire(Buff buff);

    <T extends IBuffEffectParam> T getEffectParam();

    void setBuffEffectParam(IBuffEffectParam param);
}
